/*
 * Copyright (c) 2003-2005
 * XDoclet Team
 * All rights reserved.
 */
package org.xdoclet.plugin.hibernate.qtags;

import org.xdoclet.plugin.hibernate.qtags.parameter.Catalog;
import org.xdoclet.plugin.hibernate.qtags.parameter.Schema;

/**
 * This element has several optional attributes. The <code>schema</code> and <code>catalog</code> attributes
 * specify that tables referred to in this mapping belong to the named schema and/or catalog. If specified,
 * tablenames will be qualified by the given schema and catalog names. If missing, tablenames will be
 * unqualified. The <code>default-cascade</code> attribute specifies what cascade style should be assumed
 * for properties and collections which do not specify a cascade attribute. The <code>auto-import</code>
 * attribute lets us use unqualified class names in the query language, by default.
 *
 * @author Anatol Pomozov
 * @qtags.location class
 * @qtags.once
 */
public interface HibernateMappingTag extends com.thoughtworks.qdox.model.DocletTag, Schema, Catalog {
    /**
     * Specifies whether we can use unqualified class names (of classes in this mapping) in the query language.
     */
    Boolean getAutoImport();

    /**
     * The strategy Hibernate should use for accessing all properties. Can be a custom implementation
     * of <code>PropertyAccessor</code>.
     */
    String getDefaultAccess();

    /**
     * A default cascade style.
     */
    String getDefaultCascade();

    /**
     * The default value for unspecifed lazy attributes of class and collection mappings.
     */
    Boolean getDefaultLazy();

    /**
     * Specifies a package prefix to assume for unqualified class names in the mapping document.
     */
    String getPackage();
}